#pragma once
#include "Foundation.h"
#include "timer2.h"

/*
==================
Class Singletons

This class is purely static, and no instance of it is ever instantiated.

To avoid global variables, this class is used as a wrapper around
all the singleton objects in the application.

InstantiateSingletons() and DeleteSingletons() should be called at the
start and end of the application resepctively.

The singletons encapsulated in this class are statically public, making
the preferred method of access as such;    Timer *t = Singletons::timer;
==================
*/

class Hotel;
class BillRecord;

class Singletons {
public:
	static void			InstantiateSingletons();
	static void			DeleteSingletons();

	static Timer		*timer;
	static Hotel 		*hotel;
	static BillRecord 	*billRecord;
	static Date 		currentDate;
};

